package cn.kgc.springmvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author: mosin
 * @version: v1.0  2022/4/28
 *
 *
 * servlet中的跳转方式
 *   转发       一次请求     可以在request中共享数据   页面
 *  重定向      多次请求     不能在request中共享数据
 *
 * springmvc的跳转方式

 *      1.controller   - >  页面
 *         转发 ：  默认方法
 *        重定向：  redirect
 *      2.controller   - > controller
 *          转发 ：      forward
 *          重定向：     redirect
 */
@Controller
@RequestMapping("fr")
public class FRController {

    @RequestMapping("f1")
    public String  test01(){
        System.out.println("f1请求被接收");
        //返回视图名   转发   经过视图解析
        return "hello";  // 视图的逻辑名    ->请求视图解析器  - >    prefix+hello+suffix  - >  /static/hello.jsp
    }


    @RequestMapping("r1")
    public String  test02(){
        System.out.println("r1请求被接收");
        //  redirect：    重定向  不会经过视图解析
        return "redirect:/static/hello.jsp";  //
    }

    // 转发实现   controller -> controller  同一个controller 不同的请求之间的跳转
    @RequestMapping("f2")
    public String  test03(){
        System.out.println("f2请求被接收");
        //  forward：    不会经过视图解析   将请求转发
        return "forward:/fr/f1";  //
    }


    @RequestMapping("r2")
    public String  test04(){
        System.out.println("r2请求被接收");
        // 重定向
        return "redirect:/fr/f1";
    }


    // 转发实现   controller -> controller  不同controller 不同的请求之间的跳转
    @RequestMapping("f3")
    public String  test05(){
        System.out.println("f3请求被接收");
        //  forward：    不会经过视图解析   将请求转发
        return "forward:/hello/h2";  //
    }


    @RequestMapping("r3")
    public String  test06(){
        System.out.println("r3请求被接收");
        // 重定向
        return "redirect:/hello/h2";
    }

}
